package com.winsdom.vo.uniformCharge;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 缴费历史视图对象
 */
@Data
@ApiModel("缴费历史信息")
public class PaymentHistoryVO {
    @ApiModelProperty(value = "客户名称", example = "张三")
    private String customerName;

    @ApiModelProperty(value = "计费项目", example = "水费")
    private String expenditureName;

    @ApiModelProperty(value = "计费性质", example = "居民用水")
    private String nature;

    @ApiModelProperty(value = "单价", example = "3.50")
    private BigDecimal unitPrice;

    @ApiModelProperty(value = "上期读数", example = "100.50")
    private BigDecimal lastReading;

    @ApiModelProperty(value = "本期读数", example = "120.75")
    private BigDecimal currentReading;

    @ApiModelProperty(value = "用量", example = "20.25")
    private BigDecimal usageAmount;

    @ApiModelProperty(value = "计费日期起", example = "2023-01-01")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime startDate;

    @ApiModelProperty(value = "计费日期止", example = "2023-01-31")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime endDate;

    @ApiModelProperty(value = "应收金额", example = "70.88")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "核销金额", example = "70.88")
    private BigDecimal writeOffAmount;

    @ApiModelProperty(value = "账期", example = "2023-01")
    private String billingPeriod;

    @ApiModelProperty(value = "账单编号", example = "10001")
    private Long billsId;

    @ApiModelProperty(value = "发票代码", example = "12345678")
    private String invoiceCode;

    @ApiModelProperty(value = "发票号码", example = "INV20230001")
    private String invoiceNumber;
}
